#include "serialport.h"
#include <QDebug>

SerialPort::SerialPort(QObject *parent) : QObject(parent)
{

    QList<QSerialPortInfo> list = QSerialPortInfo::availablePorts();
    for (int i = 0; i < list.size(); ++i)
    {
        // 目前只虚拟化了COM1和COM2，所以只会打印COM1和COM2
        qDebug() << list.at(i).portName();
    }
    // 创建一个串口类对象
    this->serial1 = new QSerialPort;

    this->setSerialPort(serial1, "COM1");
    // 接收数据
    // 连接串口1的readyRead信号到槽函数
    connect(serial1, &QSerialPort::readyRead, this, &SerialPort::readFromSerial1);
}

void SerialPort::setSerialPort(QSerialPort *serial, const QString &portName)
{
    //1 选择要打开的端口
    serial->setPort(QSerialPortInfo(portName));
    //2设置波特率
    serial->setBaudRate(QSerialPort::Baud9600);
    //3设置奇偶校验位
    serial->setParity(QSerialPort::NoParity);
    //4设置停止位
    serial->setStopBits(QSerialPort::OneStop);
    //5打开串口
    bool info = serial->open(QIODevice::ReadWrite);
    if (info == true)
    {
        qDebug() << "打开串口成功";
    }
    else {
        qDebug() << "打开串口失败";
    }
}
